a11y tests: Prepare to dump AtkHypertext
authorMatthias Clasen <mclasen@redhat.com>
Sat, 4 Jan 2014 01:34:22 +0000 (20:34 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 4 Jan 2014 15:54:03 +0000 (10:54 -0500)
This will be used for links in labels soon.
As a side-effect, the output for AtkHyperlinkImpl changes
slightly. Update expected output accordingly.

testsuite/a11y/accessibility-dump.c
testsuite/a11y/link.txt

index ce1a87a106d4f28a420cf0ee7a2082f89c43fe64..a72591eb4551a30ac92befd462e2759e88477413 100644 (file)
@@ -468,30 +468,59 @@ dump_atk_value (AtkValue *atk_value,
 }
 
 static void
-dump_atk_hyperlink_impl (AtkHyperlinkImpl *impl,
-                         guint             depth,
-                         GString          *string)
+dump_atk_hyperlink (AtkHyperlink *link,
+                    guint         depth,
+                    GString      *string)
 {
-  AtkHyperlink *atk_link;
   gint i;
 
-  g_string_append_printf (string, "%*s<AtkHyperlinkImpl>\n", depth, "");
-
-  atk_link = atk_hyperlink_impl_get_hyperlink (impl);
-
+  g_string_append_printf (string, "%*s<AtkHyperlink>\n", depth, "");
+  g_string_append_printf (string, "%*sstart index: %d\n", depth, "", atk_hyperlink_get_start_index (link));
+  g_string_append_printf (string, "%*send index: %d\n", depth, "", atk_hyperlink_get_end_index (link));
   g_string_append_printf (string, "%*sanchors:", depth, "");
 
-  for (i = 0; i < atk_hyperlink_get_n_anchors (atk_link); i++)
+  for (i = 0; i < atk_hyperlink_get_n_anchors (link); i++)
     {
       gchar *uri;
 
-      uri = atk_hyperlink_get_uri (atk_link, i);
+      uri = atk_hyperlink_get_uri (link, i);
       g_string_append_printf (string, " %s", uri);
       g_free (uri);
     }
+
   g_string_append_c (string, '\n');
+}
+
+static void
+dump_atk_hyperlink_impl (AtkHyperlinkImpl *impl,
+                         guint             depth,
+                         GString          *string)
+{
+  AtkHyperlink *link;
+
+  g_string_append_printf (string, "%*s<AtkHyperlinkImpl>\n", depth, "");
 
-  g_object_unref (atk_link);
+  link = atk_hyperlink_impl_get_hyperlink (impl);
+  dump_atk_hyperlink (link, depth + DEPTH_INCREMENT, string);
+  g_object_unref (link);
+}
+
+static void
+dump_atk_hypertext (AtkHypertext *hypertext,
+                    guint         depth,
+                    GString      *string)
+{
+  gint i;
+  AtkHyperlink *link;
+
+  g_string_append_printf (string, "%*s<AtkHypertext>\n", depth, "");
+
+  for (i = 0; i < atk_hypertext_get_n_links (hypertext); i++)
+    {
+      link = atk_hypertext_get_link (hypertext, i);
+      dump_atk_hyperlink (link, depth + DEPTH_INCREMENT, string);
+      g_object_unref (link);
+    }
 }
 
 static void
@@ -641,6 +670,9 @@ dump_accessible (AtkObject     *accessible,
   if (ATK_IS_HYPERLINK_IMPL (accessible))
     dump_atk_hyperlink_impl (ATK_HYPERLINK_IMPL (accessible), depth, string);
 
+  if (ATK_IS_HYPERTEXT (accessible))
+    dump_atk_hypertext (ATK_HYPERTEXT (accessible), depth, string);
+
   if (ATK_IS_STREAMABLE_CONTENT (accessible))
     dump_atk_streamable_content (ATK_STREAMABLE_CONTENT (accessible), depth, string);
 
index e94e9c3eb1db0b1a02469ba8ce14ca237fecae85..e95e8bcc1f2e155ab07a21581d7fa644f08cc707 100644 (file)
@@ -23,4 +23,7 @@ window1
     action 0 name: click
     action 0 description: Clicks the button
     <AtkHyperlinkImpl>
-    anchors: http://www.gtk.org
+      <AtkHyperlink>
+      start index: 0
+      end index: 0
+      anchors: http://www.gtk.org